Web-интерфейс. Сценарий управления устройством

Управление состоянием интерфейса при переключении SIM-слотов. Логические узлы
show_cover
Обработчик состояния заставки при переключении слотов
| Язык | Пример кода |
|---|---|
| JavaScript | |
| Bash | |
show_cover = {
# создаём логический узел "show_cover"
note = [[ Показываем заставку "Идёт переключение слотов" ]],
# и добавляем в него операторы узла
{
["load-ubus"] = function (nodes)
# оператор [load-ubus] получает состояние
return {
# слотов от Микроконтроллера,
object = "tsmstm",
# обратившись к системной шине UBUS
method = "info",
params = {},
}
end
},
{
["skip"] = function (nodes)
# если в данный момент происходит
local last_switch_time = nodes.show_cover.last_switch_time
# переключение слотов, то оператор [skip]
if ((os.time() - last_switch_time) > 15) then
# отменяет обработку следующих за ним операторов
return true else return false
# узла, таких как: [ui-update] и [break]
end
end
},
{
["ui-update"] = function(nodes)
# если же имеет место переключение слотов, то
return({
# отправляем в веб-интерфейс switching="true",
simid = nodes.show_cover.slot,
# воспользовавшись оператором [ui-update]
switching = "true"
})
end
},
{
["break"] = function(nodes)
# и прерываем дальнейшую обработку данного
return true
# правила оператором [break],
end
# так как в этом нет необходимости
},
},
hide_cover
Обработчик скрытия заставки при завершении переключения слотов
hide_cover = {
# создаём логический узел "hide_cover"
note = [[ Скрываем заставку "Идёт переключение слотов" ]],
# и добавляем в него операторы узла
{
["load-ubus"] = function (nodes)
# оператор [load-ubus] получает состояние
return {
# слотов от Микроконтроллера,
object = "tsmstm",
# обратившись к системной шине UBUS
method = "info",
params = {},
}
end
},
{
["skip"] = function (nodes)
# если переключение слотов окончено, то
local last_switch_time = nodes.show_cover.last_switch_time
# оператор [skip] возвращает "false":
if ((os.time() - last_switch_time) < 15) then
# значит следующие за ним операторы
return true else return false
# не отменяются
end
end
},
{
["ui-update"] = function(nodes)
return({
simid = nodes.show_cover.slot,
# оператор [ui-update] посылает в веб-интерфейс
switching = "false"
# значение switching="false"
})
end
},
},